Skip to content

Sharp skies and a VR-safe look (roadmap 72 LK2, LK3) - #518

Closed
AlexZ005 wants to merge 2 commits into
feat/72from
feat/72-skies
Closed

AlexZ005 wants to merge 2 commits into
feat/72from
feat/72-skies

Conversation

@AlexZ005

@AlexZ005 AlexZ005 commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

LK2: sharp skies

  • UltraHDR .jpg skies at 1K, 2K and 4K (8K for Meadow) from the packs CDN. The 1K file lights the scene; larger files only draw the sky, swapped in after the low size shows. Recovery runs on the GPU.
  • Configure scene > Sky quality (Auto/Standard/High/Max + minimum quality); a Sky quality row in the players' game options overrides Auto; exports keep the option.

LK3: VR-safe look

  • Tone mapping and grading go into three's CustomToneMapping hook, so there is no pass and no render target. LUT = affine fit; vignette = one quad per eye. Effects that need neighbouring pixels stay desktop-only, and the Look panel says so.
  • vrEyes test helper: fixes a double sRGB encode, so eye pictures now have true brightness.

Depends on

The packs PR for the .jpg files, then a format-1 retag and a jsDelivr purge. Until then the app falls back to the .hdr files. Details are in the lane STATUS.

Proof

  • svelte-check at baseline (279/39), unit 3580 passing, npm run build OK
  • e2e: sky-quality 40, sky-cdn dev 19 and built app 21 (export carries 1K to 4K byte-identical), hdri 35, xr-look 25, vr-eye-shots 14
  • Eye against desktop grey: 75,75,75 on both. Textures and draw calls are unchanged with the look on against off; the vignette adds 2 draws.

Not measured: real Quest frame time and real phone UltraHDR. Both are owner device rows.

🤖 Generated with Claude Code

AlexZ005 and others added 2 commits November 1, 2026 22:55
… 72 LK2)

Skies come as UltraHDR .jpg from the packs CDN at 1K, 2K and 4K (8K for the
Meadow showcase). The 1K file lights the scene (energy within 2% of the source
.hdr, about a fifth of the download); a larger file only draws the sky, swapped
in after the low size shows. The HDR is recovered on the GPU, so nothing decodes
on the main thread. The .hdr stays as the fallback and for older releases.

Configure scene > Sky quality (Auto/Standard/High/Max + a minimum quality), and
a Sky quality row in the players' game options that overrides Auto. Auto is High
on a desktop, Standard on a headset, a phone, a slow or metered connection or a
loaded machine; a headset never goes past High. Exports carry 1K to 4K of their
sky, and 8K only for a scene pinned to Max.

Proof: unit ultraHdr + hdriCore; e2e sky-quality (40), sky-cdn (dev 19, built
app 21 with the export check), hdri (35).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A headset never ran the composer, so a scene's look vanished in VR. Tone mapping,
hue/saturation and brightness/contrast are now written into three's
CustomToneMapping hook, so every material grades itself as it draws, with no
render target (foveation and MSAA stay). A LUT is fitted to an affine map and a
vignette is one blended quad per eye. Effects that need neighbouring pixels stay
desktop-only and the Look panel says so per effect. A scene with no look keeps
its old headset picture exactly.

vrEyes drew into an SRGB8_ALPHA8 target and encoded twice, so every eye picture
came out too bright. It uses RGBA8 now, as an XR layer does.

Proof: unit xrLookCore; e2e xr-look (25, IWER + two peers): the grey in the eye
equals the desktop's (75,75,75 both), textures and draw calls are unchanged with
the look on against off, the vignette adds exactly two draws. vr-eye-shots (14)
stays green on the helper fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AlexZ005

AlexZ005 commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

In main via 72-int: released as v1.59.0 (91b074e).

@AlexZ005 AlexZ005 closed this Nov 4, 2026
@AlexZ005
AlexZ005 deleted the feat/72-skies branch November 4, 2026 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant